The present invention is generally directed to redirection in a virtual desktop infrastructure (VDI) environment. In a VDI environment, a client establishes a remote session with a server. This remote session involves a desktop environment that is executed on the server with its display output being sent to the client where it is displayed to the user. The user can then provide input (e.g., keyboard and mouse input) at the client which is sent back to the server to be handled within the remote session. Accordingly, from the user perspective, it will appear as if the desktop environment is executed at the client rather than the server. For this reason, the desktop environment is referred to as a virtual desktop environment.
Because the desktop environment is executed on the server, various traditional computing techniques will not function in a proper manner without additional modifications. For example, if the user connects a USB device to the client terminal, the USB device will not be accessible within the remote session since the session exists on the server, not the client. Also, because the session is on the server which may be located in a different time zone than the client, the time zone of the server will be employed by applications (e.g., an email client) executed within the remote session rather than the time zone of the client. Further, because display output is transmitted to the client, if the remote session is used to render video, the rendered video will be transmitted to the client rather than the unrendered (i.e., compressed) video content thereby increasing the bandwidth required by the remote session.
To address these issues, redirection techniques have been developed. For example, USB redirection involves redirecting a USB device/interface connected to the client to the server for use within the remote session. Also, time zone redirection involves causing the remote session to employ a time zone of the client rather than a time zone of the server. Further, multimedia redirection involves sending unrendered multimedia content to the client for rendering rather than first rendering at the server and then sending the rendered content to the client. Similarly, URL redirection involves sending a URL for a streaming service to the client to allow the client to stream the content directly rather than having the content streamed to and rendered at the server.
Each of these redirection techniques increases the efficiency and usability of a remote session. However, they are only available when the remote session is established between the client and the server. If the user of the client establishes a remote session within a remote session, these redirection techniques will not be available in the newly established remote session. FIG. 1 illustrates why this is so using USB redirection as an example.
As shown in FIG. 1, client 101 establishes a remote session 110 with server 102. As part of establishing remote session 110, a proxy (not shown) on client 101 can redirect USB device 105 (which is connected to client 101) to an agent on server 102 which can cause the USB device to be accessible within remote session 110 (e.g., as virtual USB device 105a). As these USB redirection techniques are known in the art, no further detail will be provided as to how this redirection is accomplished.
However, if the user of client 101 establishes another remote session 111 with server 103 from within remote session 110, virtual USB device 105a will not be redirected to server 103. This is because the components employed on server 102 to establish remote session 111 will be executed within remote session 110 as if they were any other type of application and will therefore have no knowledge of the redirection of USB device 105.
However, from the user perspective, there will be little or no difference between working within remote session 110 or within remote session 111. Therefore, the fact that USB device 105 will not be available within remote session 111 can lead to substantial frustration and lack of productivity. This is especially true given the increasing number of scenarios where users are required to establish these types of multitier remote sessions. For example, if a user works from home, server 102 can represent a work server that allows connections from home while server 103 can represent a different server to which client 101 cannot directly connect and which provides a particular application necessary for the user to perform his work tasks. Some enterprise environments may even require this type of hop or multi-level channel when client 101 is located within the work environment (e.g., when client 101 is a thin or zero client or in BYOD environments). Also, some environments may employ a secure gateway which creates the same issue.